;
(function () {

    $(function () {

        $.idcode.setCode();         //加载生成验证码的方法

        //自定义规则
        $.validator.addMethod("checkName", (value, element, param) => {
            var reg = /^[a-z]+/i;
            return reg.test(value);
        })
        $.validator.addMethod("checkPhone", (value, element, param) => {
            var reg = /^[1][3-9]\d{9}$/i;
            return reg.test(value);
        })

        $("form").validate({       //给表单绑定事件

            //规则验证
            rules: {
                uname: {
                    required: true,
                    rangelength: [6, 20],
                    checkName: true
                },
                upwd: {
                    required: true,
                    rangelength: [8, 20]
                },
                upwd2: {
                    equalTo: "#upwd"
                },
                uphone: {
                    required: true,
                    checkPhone: true
                },
                uemail: {
                    required: true,
                    email: true
                }
            },
            //提示信息
            messages: {
                uname: {
                    required: '用户名必填',
                    rangelength: '用户名必须是{0}-{1}位数',
                    checkName: '用户名要字母开头'
                },
                upwd: {
                    required: '密码必填',
                    rangelength: '密码必须是{0}-{1}位数'
                },
                upwd2: {
                    equalTo: "两次密码不一致"
                },
                uphone: {
                    required: '手机号必填',
                    checkPhone: '请填写正确的手机号'
                },
                uemail: {
                    required: '邮箱必填',
                    email: '请填写正确的邮箱'
                }
            },
            //提交
            submitHandler: function () {

                var IsBy = $.idcode.validateCode();          //判断验证码是否输入正确
                var OK = $("[name='ok']").is(':checked')     //判断阅读协议是否勾选了
                // console.log(OK)

                if (!OK) {
                    layer.tips('请勾选阅读协议!', $("button"), { tips: [1, '#3595CC'], time: 4000 });      //这是是弹窗风格插件
                    return false;
                }

                if (!IsBy) {
                    layer.msg('验证码错误!');      //这是是弹窗风格插件
                    return false;
                } else {

                    var formdata = new FormData();          //通过FormData把表单元素提交到后台( Ajax时使用 )
                    formdata.append("u_name", $('[name=uname]').val())   //用append方法逐渐添加 键值
                    formdata.append("u_pwd", $('[name=upwd]').val())
                    formdata.append("u_tel", $('[name=uphone]').val())
                    formdata.append("u_email", $('[name=uemail]').val())
                    //图片的base64的图片流
                    formdata.append("u_img", $('#file')[0].files[0])



                    $.ajax({
                        url: "./api/reg",
                        data: formdata,
                        type: "post",
                        processData: false,         //不进行内容转移
                        contentType: false
                    }).done(function (res) {
                        // console.log(res)
                        // console.log(res.data)

                        //弹窗风格来判断是否去登陆
                        layer.alert("注册成功,是否去登陆", {
                            icon: 1,
                            time: 10000,                          //5秒后关闭
                            btn: ["是", "否"]                   //几个按钮和内容
                        }, (index) => {
                            layer.close(index);
                            window.location = "login.html"
                            
                        }, () => { })


                    })


                    // //获取表单的内容
                    // var obj = {
                    //     uname: $("[name='uname']").val(),
                    //     upwd: $("[name='upwd']").val(),
                    //     uphone: $("[name='uphone']").val(),
                    //     uemail: $("[name='uemail']").val()
                    // }

                    // //1.先读取cookie的内容,把字符串转数组
                    // var userList = JSON.parse($.cookie("users") || '[]');

                    // //2.遍历数组,查找是否刚才填写的用户名
                    // var flag = userList.some((el) => el.uname == obj.uname)

                    // //3.注册了就判断
                    // if (flag == true) {
                    //     layer.alert("用户名已被注册")
                    //     return false;
                    // }

                    // //4.没注册就保存到cookie里面去
                    // userList.push(obj);
                    // $.cookie.raw = true;        //不用编码

                    // //存入cookie
                    // $.cookie("users", JSON.stringify(userList), { expires: 10 });





                    return false;
                }


            }



        })


        //获得焦点更换图片事件
        $(".main0-2 input").on("focus", function () {
            $(this).next().css("background", "url('images/v-icon-1.png') no-repeat 0 2px")
        }).on("blur", function () {
            $(this).next().css("background", "url('images/v-icon-2.png') no-repeat 0 2px")
        })

        //点击登陆去登陆页面
        $(".main0-1 span").on("click", function () {
            window.location = "login.html"
        })


        //选择文件加载图片预览
        $("#file").on("change", function () {      //上传文件标签内容进行改变时执行
            var fr = new FileReader();             //读取上传的文件的数据
            fr.readAsDataURL(this.files[0])        //将文件以数据URI的形式保存在result属性中
            fr.onload = function (e) {             //文件数据读取完成后触发事件
                var ele = e.target || e.srcElement;
                $("#img").attr("src", ele.result)     //ele.result是图片的本体
            }
        })



    })

})()